#ifndef _MPIUTIL_H
#define _MPIUTIL_H

class MPIUtil {
    public:
        static const int TAG = 1;
        static const int TAMANHO_MENSAGEM = 1;

        MPIUtil();
        MPIUtil(int& argc, char* argv[]);
        ~MPIUtil();

        void init(int& argc, char* argv[]);
        void finalize();

        void enviar(int msg, int destino);
        int receber(int* origem);
        int receber(int* origem, int timeout);

        void receberNB(int* dado);
        bool testaRecerber(int* origem);

    private:
        MPI_Request requisicao;
};

#endif /* _MPIUTIL_H */
